
const context = {
    // get query() {
    //     return this.request.query
    // },
    // get url() {
    //     return this.request.url
    // }
}

function defineGetter(target, key) {  // 将ctx.request 属性代理到ctx
    context.__defineGetter__(key, function () {
        return this[target][key]
    })
}


function defineSetter(target, key) {   // 设置ctx上的属性将 ctx上的属性搭理到ctx.response上
    context.__defineSetter__(key, function (value) {
        this[target][key] = value
    })
}


defineGetter('request', 'query')
defineGetter('request', 'url')
defineGetter('request', 'path')
defineGetter('response', 'body') //
defineSetter('response', 'body')

// Object.defineProperty(context, 'query', {
//     get() {
//         return this.request.query
//     }
// })

// Object.defineProperty(context, 'url', {
//     get() {
//         return this.request.url
//     }
// })

module.exports = context